#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <semaphore.h>


int es_digito(char caracter){
    int res = caracter == '0';
    res = res || caracter == '1';
    res = res || caracter == '2';
    res = res || caracter == '3';
    res = res || caracter == '4';
    res = res || caracter == '5';
    res = res || caracter == '6';
    res = res || caracter == '7';
    res = res || caracter == '8';
    res = res || caracter == '9';
    return res;
}

_PROTOTYPE ( int main, (int argc, char** argv));
int main(int argc, char** argv){
    sem_t a;
    int r,i=0;
    if (argc < 2){
        printf("No ingreso ningun semaforo \n");
 	return -1;
    }
    i=0;
    while(argv[1][i] != '\0'){
        if(!es_digito(argv[1][i])){
            printf("El id de semaforos debe ser un numero \n");
 	    return -1;
        }
        i++;
    }
    a.id=atoi(argv[1]);
    r=sem_assign(&a,1);
    if(r < 0){
      printf("Error en la asignacion, la operacion no se pudo realizar \n");
      return -1;
    }
    r=sem_destroy(&a);      
    if(r < 0){
      printf("Error al destruir, la operacion no se pudo realizar \n");
      return -1;
    }    
    printf("Se ha destruido con existo al semaforo %d \n", a.id);    return 0;
}
